"""
* Python 中数据类型可以分为 数字型 和 非数字型
* 数字型
  * 整型 (`int`)
  * 浮点型（`float`）
  * 布尔型（`bool`）
    * 真 `True` `非 0 数` —— 非零即真
    * 假 `False` `0`
  * 复数型 (`complex`)
    * 主要用于科学计算，例如：平面场问题、波动问题、电感电容等问题
* 非数字型
  * 字符串
  * 列表
  * 元组
  * 字典
"""

# 类型转换
# 1.在控制台输入的任何内容都会被当做字符串，计算时必须进行类型转换
birth_year = input("Your birth year:")
age = 2021 - int(birth_year)  # 错误写法:age = 2021 - birth_year

# 2.输出的内容如果有字符串和其他类型组合，必须进行类型转换
print("Your age is " + str(age))  # 错误写法:print("Your age is " + age)

# 3.类型查询方法:type(变量名)
var = "abc"
print(type(var))  # <class 'str'>指的是str类型
print("birth_year type: " + str(type(birth_year)))
print("age type: " + str(type(age)))

# 4.将字符串转换为数字
a = int("123")
print("a的类型是"+str(type(a)))

# 练习:BMI计算
height = input("height(m): ")
weight = input("weight(kg): ")
BMI = float(weight) / (float(height) * float(height))
print("BMI = " + str(BMI))

# 5.检测一个数据是不是某一个类型
var = 123
var_type_is_int = isinstance(var, int)
print(f'var_type_is_int = {var_type_is_int}')
